A Simple Algorithm for Global Value Numbering
نویسندگان
چکیده
Global Value Numbering(GVN) is a method for detecting redundant computations in programs. Here, we introduce the problem of Global Value Numbering in its original form, as conceived by Kildall(1973), and present an algorithm which is a simpler variant of Kildall’s. The algorithm uses the concept of value expression an abstraction of a set of expressions enabling a representation of the equivalence information which is compact and simple to manipulate.
منابع مشابه
A Polynomial-Time Algorithm for Global Value Numbering
We describe a polynomial-time algorithm for global value numbering, which is the problem of discovering equivalences among program sub-expressions. We treat all conditionals as non-deterministic and all program operators as uninterpreted. We show that there are programs for which the set of all equivalences contains terms whose value graph representation requires exponential size. Our algorithm...
متن کاملA Note on "A polynomial-time algorithm for global value numbering"
A Global Value Numbering(GVN) algorithm is considered to be complete (or precise), if it can detect all Herbrand equivalences among expressions in a program. A polynomial time algorithm for GVN is presented by Gulwani and Necula(2006). Here we present two problems with this algorithm that prevents detection of some of the Herbrand equivalences among program expressions. We suggest improvements ...
متن کاملAn Improved Algorithm for Redundancy Detection Using Global Value Numbering
Global value numbering (GVN) is a method for detecting equivalent expressions in programs. Most of the GVN algorithms concentrate on detecting equalities among variables and hence, are limited in their ability to identify value-based redundancies. In this paper, we suggest improvements by which the efficient GVN algorithm by Gulwani and Necula (2007) can be made to detect expression equivalence...
متن کاملGlobal Value Numbering: A Precise and Efficient Algorithm
Global Value Numbering (GVN) is an important static analysis to detect equivalent expressions in a program. We present an iterative data-flow analysis GVN algorithm in SSA for the purpose of detecting total redundancies. The central challenge is defining a join operation to detect equivalences at a join point in polynomial time such that later occurrences of redundant expressions could be detec...
متن کاملValue-Driven Code Motion
Value-driven code motion is an improvement to classical code motion techniques that takes advantage of the results of global value numbering. Traditional data-ow analysis frameworks must assume that every deenition produces a distinct value. Therefore, an instruction cannot move past a deenition of one of its subexpressions. This restriction can be relaxed when certain deenitions are known to p...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- CoRR
دوره abs/1303.1880 شماره
صفحات -
تاریخ انتشار 2013